﻿using System;
using SharpSqlAnalyzer.nodes;
using SharpSqlAnalyzer.nodes.hive;

namespace SharpSqlAnalyzer.stmt.hive
{
	// Token: 0x020001B8 RID: 440
	public class THiveDescribe : TCustomSqlStatement
	{
		// Token: 0x06000EA6 RID: 3750 RVA: 0x0030A571 File Offset: 0x00308771
		public THiveDescribe(EDbVendor dbvendor) : base(dbvendor)
		{
			this.sqlstatementtype = ESqlStatementType.ssthiveDesc;
		}

		// Token: 0x170002A7 RID: 679
		// (get) Token: 0x06000EA7 RID: 3751 RVA: 0x0030A585 File Offset: 0x00308785
		// (set) Token: 0x06000EA8 RID: 3752 RVA: 0x0030A58D File Offset: 0x0030878D
		public virtual TObjectName DbName
		{
			get
			{
				return this.dbName;
			}
			set
			{
				this.dbName = value;
			}
		}

		// Token: 0x170002A8 RID: 680
		// (get) Token: 0x06000EA9 RID: 3753 RVA: 0x0030A596 File Offset: 0x00308796
		// (set) Token: 0x06000EAA RID: 3754 RVA: 0x0030A59E File Offset: 0x0030879E
		public virtual EHiveDescOption DescOption
		{
			get
			{
				return this.descOption;
			}
			set
			{
				this.descOption = value;
			}
		}

		// Token: 0x170002A9 RID: 681
		// (get) Token: 0x06000EAB RID: 3755 RVA: 0x0030A5A7 File Offset: 0x003087A7
		// (set) Token: 0x06000EAC RID: 3756 RVA: 0x0030A5AF File Offset: 0x003087AF
		public virtual EHiveDescribleType DescribleType
		{
			get
			{
				return this.describleType;
			}
			set
			{
				this.describleType = value;
			}
		}

		// Token: 0x170002AA RID: 682
		// (get) Token: 0x06000EAD RID: 3757 RVA: 0x0030A5B8 File Offset: 0x003087B8
		// (set) Token: 0x06000EAE RID: 3758 RVA: 0x0030A5C0 File Offset: 0x003087C0
		public virtual TObjectName FunctionName
		{
			get
			{
				return this.functionName;
			}
			set
			{
				this.functionName = value;
			}
		}

		// Token: 0x170002AB RID: 683
		// (get) Token: 0x06000EAF RID: 3759 RVA: 0x0030A5C9 File Offset: 0x003087C9
		// (set) Token: 0x06000EB0 RID: 3760 RVA: 0x0030A5D1 File Offset: 0x003087D1
		public virtual THiveDescTablePartition TablePartition
		{
			get
			{
				return this.tablePartition;
			}
			set
			{
				this.tablePartition = value;
			}
		}

		// Token: 0x06000EB1 RID: 3761 RVA: 0x0030A5DC File Offset: 0x003087DC
		public override int doParseStatement(TCustomSqlStatement psql)
		{
			if (this.rootNode == null)
			{
				return -1;
			}
			base.doParseStatement(psql);
			THiveDescribeSqlNode thiveDescribeSqlNode = (THiveDescribeSqlNode)this.rootNode;
			this.dbName = thiveDescribeSqlNode.DbName;
			this.functionName = thiveDescribeSqlNode.DbName;
			this.descOption = thiveDescribeSqlNode.getDescOption();
			this.tablePartition = thiveDescribeSqlNode.TablePartition;
			this.describleType = thiveDescribeSqlNode.DescribleType;
			return 0;
		}

		// Token: 0x06000EB2 RID: 3762 RVA: 0x0030A644 File Offset: 0x00308844
		public override void accept(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x06000EB3 RID: 3763 RVA: 0x0030A654 File Offset: 0x00308854
		public override void acceptChildren(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x04001339 RID: 4921
		private EHiveDescribleType describleType;

		// Token: 0x0400133A RID: 4922
		private TObjectName functionName;

		// Token: 0x0400133B RID: 4923
		private TObjectName dbName;

		// Token: 0x0400133C RID: 4924
		private THiveDescTablePartition tablePartition;

		// Token: 0x0400133D RID: 4925
		private EHiveDescOption descOption;
	}
}
